package com.witdata.mysql.domain.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.sql.Timestamp;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 课程表 实体类。
 *
 * @author admin
 * @since 2025-05-09
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("t_courses")
public class TCourses implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 课程ID
     */
    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 课程名称
     */
    private String name;

    /**
     * 课程代码
     */
    private String code;

    /**
     * 学期
     */
    private Boolean term;

    /**
     * 封面图片URL
     */
    private String coverImage;

    /**
     * 课程描述
     */
    private String description;

    /**
     * 学习要求
     */
    private String requirements;

    /**
     * 是否允许自由加入
     */
    private Boolean allowFreeJoin;

    /**
     * 是否开启作业功能
     */
    private Boolean enableAssignment;

    /**
     * 是否开启考试功能
     */
    private Boolean enableExam;

    /**
     * 加课验证码
     */
    private String joinCode;

    /**
     * 人数上限
     */
    private Integer maxStudents;

    /**
     * 课程状态：未启用0，已启用1
     */
    private Boolean status;

    /**
     * 创建者ID
     */
    private String creatorId;

    /**
     * 创建时间
     */
    private Timestamp createdAt;

    /**
     * 更新时间
     */
    private Timestamp updatedAt;

}
